The present invention generally relates to computer software, and more specifically to a method for generating a railing structure.
Computer hardware and computer software programs have revolutionized the way we work, shop, and do business. In general, computers have increased our productivity by providing a mechanism that allows us to do more in less time. For example, many labor and time intensive tasks of the past, such as ledge bookkeeping and mathematical problem-solving are now performed in a number of minutes using a variety of accounting and statistical computer programs. In addition, computers have also enhanced the productivity of both architects and engineering designers. Today, few architecture schematics are created at a drafting table with pencils, drafting paper, and rulers. Instead, three-dimensional architecture and landscape designs are typically conceptualized and modeled through the use of computer software programs.
For example, architecture design programs, generally known as computer aided design (CAD) programs, provide a designing tool that allows architects, interior designers, land planners, and civil engineers to conceptualize and present design layouts. By simulating the layout of a particular design, a significant reduction in manufacturing costs may be realized as mistakes can be identified and corrected prior to the construction or manufacture of particular a design.
In general, CAD applications are particularly helpful in conceptualizing design layouts that traditionally have been tedious, laborious, and time intensive processes to perform. In addition, the overall design process has been aided by the increased development of easy to use control software, commonly referred to as a graphical user interface (GUI). For example, most CAD applications include some sort of GUI. These GUIs provide a user interface in which a user may use a mouse or other cursor input control device to select (point and click) and/or move (drag and drop) objects on a visual display. Many GUIs also include user friendly menus such as toolbars or other types of pull-down menus that allow users to select from a variety of cursor control options.
In general, CAD applications typically include the ability to add text, to paint, to rotate, or to move or place an object in a scene, or to undo or redo a previous action. In addition, many CAD applications further allow the user to add shading and lighting to an object, to view the design from various viewpoints, to zoom in on a particular component, to rotate and scale components, or to change the geometry of a component. These features provide ease of use in producing conceptual designs and the presentation of numerous design concepts from different visual perspectives.
Notwithstanding the great technological advances in computerized architectural design programs, certain labor intensive tasks persist, albeit on a computer. One labor intensive task that has persisted relates to the drafting and manipulation of railing structures. In this context, a railing structure is broadly defined as any structure that includes:
(1) a first set of one or more components that extend from a path, such as posts in a fence, and
(2) a second set of one or more components, such as a hand rail on a banister, that intersect the first set of components in such a manner that the spacing between the points at which the components in the first set intersect a component in the second set remains substantially constant.
For the purpose of explanation, components that belong to the first set of components shall be referred to herein as xe2x80x9cpost componentsxe2x80x9d, and components that belong to the second set of components shall be referred to herein as xe2x80x9crail componentsxe2x80x9d. However, it should be noted that these terms do not imply that the components have any visual similarity to conventional posts or rails. Railing structures may include, but are not limited, to such structures as fences, hand railings, balustrades, railroad tracks or any other structures that satisfy the definition provided above.
A drawback with designing railing structures, using CAD or similar architecture design software applications, is that they require tedious and time-consuming manual positioning and placement (e.g. xe2x80x9cdrag and dropxe2x80x9d) of each railing structure component onto the design layout or scene. For example, not only would the construction of a fence require the drafter to manually and precisely position each post, rail, and picket, but also to run the fence along a specific path in the design layout.
In addition, a user also has the drawback of having to ensure that each individual component has uniform dimensions (e.g. height, width, depth). A common method for ensuring that each component has a uniform dimension typically consists of the user creating a single component (e.g. a picket) and then copying it to create all of the other components of the same type. Once the components have been made, the user must meticulously place and associate the components to form the railing structure.
Another drawback with the current computer aided architectural design programs pertains to the manual updating of multiple components of the railing structure. For example, if the user determines that the dimensions of the pickets within a fence need to be modified or changed, the user will be required to individually perform the modification or change on every picket within the fence. In addition, if the user requires the fence to be moved to a different location within the design layout (i.e., follow a different path), the repositioning may require many, if not all, of the railing components to be manually repositioned within the layout.
Still another problem pertains to the structural model of the railing structure. Post components on a fence are generally placed by a user, for structural reasons, where the fence pivots from its original 180 degree direction along a path. However, if a user uses a spacing mechanism to evenly position post components along the path of a railing structure, then the mechanism may not place a post component where the fence pivots in a new direction. Therefore, the structural support of the fence appears unrealistic and awkward. To correct this appearance, users are left with the time and labor intensive task of identifying and then manually repositioning each post component at these pivotal positions.
If errors such as these are not discovered prior to the actual construction of a railing structure, a significant increase in preparatory and material costs may be realized due to a shortage in materials purchased or to the purchase of excess or inadequate materials.
Based on the foregoing, it is highly desirable to provide a mechanism that can reduce the time-consuming, labor intensive task of designing a railing structure.
It is also desirable to provide a mechanism that can reduce the time-consuming, labor intensive task of applying modifications to railing structures.
In addition, it is also desirable to provide a mechanism that can automatically identify where certain railing components, such as posts, are required to be located.
A method and system are provided for generating railing objects that model railing structures. By representing a potentially complex railing structure using a single object, a modeling tool is able to perform automatically many of the operations that would otherwise require manual component-by-component manipulations by a user. According to the method, a railing object, comprising post components and rail components, is generated along a path within a design layout, with the option of using filling material between the post components.
According to one embodiment, the railing object substantially follows an existing path. The railing object may comprise an increasing number of segments to better follow the curvature of the path. After a railing object is applied to a path, any modification applied to the path is automatically applied to the railing object. That is, every railing object component (e.g. post, railing, fencing) will be repositioned along the new position of the path.
According to another aspect, modifications to the geometric dimensions of a single component instance of a railing object are automatically applied to every instance of that component on the railing object.
According to another aspect, corners in the railing object are positioned to match corners on the path.